package gestion.horarios.model.jpa.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the sesionlectiva database table.
 * 
 */
@Entity
@Table(name="sesionlectiva")
public class SesionLectiva implements Serializable {
	private static final long serialVersionUID = 1L;
	private int sesionLectivaId;
	private String estado;
	private Curso curso;
	private Docente docente;
	private EspacioLectivo espaciolectivo;
	private Seccion seccion;
	private TipoSesionLectiva tiposesionlectiva;
	private FranjaDiaTurno franjadiaturno;

    public SesionLectiva() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	public int getSesionLectivaId() {
		return this.sesionLectivaId;
	}

	public void setSesionLectivaId(int sesionLectivaId) {
		this.sesionLectivaId = sesionLectivaId;
	}


	@Column(length=45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	//bi-directional many-to-one association to Curso
    @ManyToOne
	@JoinColumn(name="CursoId", nullable=false)
	public Curso getCurso() {
		return this.curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}
	

	//bi-directional many-to-one association to Docente
    @ManyToOne
	@JoinColumn(name="DocenteId", nullable=false)
	public Docente getDocente() {
		return this.docente;
	}

	public void setDocente(Docente docente) {
		this.docente = docente;
	}
	

	//bi-directional many-to-one association to EspacioLectivo
    @ManyToOne
	@JoinColumn(name="EspacioLectivoId", nullable=false)
	public EspacioLectivo getEspaciolectivo() {
		return this.espaciolectivo;
	}

	public void setEspaciolectivo(EspacioLectivo espaciolectivo) {
		this.espaciolectivo = espaciolectivo;
	}
	

	//bi-directional many-to-one association to Seccion
    @ManyToOne
	@JoinColumns({
		@JoinColumn(name="HorarioId", referencedColumnName="HorarioId", nullable=false),
		@JoinColumn(name="SeccionId", referencedColumnName="SeccionId", nullable=false)
		})
	public Seccion getSeccion() {
		return this.seccion;
	}

	public void setSeccion(Seccion seccion) {
		this.seccion = seccion;
	}
	

	//bi-directional many-to-one association to TipoSesionLectiva
    @ManyToOne
	@JoinColumn(name="TipoSesionLectivaId", nullable=false)
	public TipoSesionLectiva getTiposesionlectiva() {
		return this.tiposesionlectiva;
	}

	public void setTiposesionlectiva(TipoSesionLectiva tiposesionlectiva) {
		this.tiposesionlectiva = tiposesionlectiva;
	}
	
	

	//bi-directional many-to-one association to FranjaDiaTurno
    @ManyToOne
	@JoinColumn(name="FranjaDiaTurnoId", nullable=false)
	public FranjaDiaTurno getFranjadiaturno() {
		return this.franjadiaturno;
	}

	public void setFranjadiaturno(FranjaDiaTurno franjadiaturno) {
		this.franjadiaturno = franjadiaturno;
	}
}